package com.atguigu;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.script.RedisScript;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class AppRedisConfiguration {
   @Bean("redisTemplate")
    public RedisTemplate createRedisTemplate(RedisConnectionFactory redisConnectionFactory){

       RedisTemplate redisTemplate=new RedisTemplate();

       redisTemplate.setConnectionFactory(redisConnectionFactory);

       redisTemplate.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());

       StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();

       redisTemplate.setKeySerializer  (stringRedisSerializer);
       redisTemplate.setValueSerializer(stringRedisSerializer);
       redisTemplate.setDefaultSerializer(stringRedisSerializer);

       return redisTemplate;

    }
    @Bean("script")
    public RedisScript<Boolean> script(){
      Resource resource= new ClassPathResource("lua/test.lua");
       return RedisScript.of(resource,Boolean.class);

    }






}
